<style src="./index.scss" lang="scss" scoped rel="stylesheet/scss"></style>
<template src="./index.html"></template>
<script>
export default {
  name: "SelectDeliverArea",
  computed: {},
  data() {
    return {
      // 外部传入
      appWindow: null,
      // 外部传入
      apiConfig: null,
      // 当前数据id层级列表
      selectId: [
        // "", // 省
        // "", // 市
        // "", // 区
        // "", //街道
      ],
      // 当前数据已选情况  总数total  已选数量selected  全选数量 checkAll
      optionsQty: [
        {
          total: 0,
          selected: 0,
          checkAll: 0,
        },
        {
          total: 0,
          selected: 0,
          checkAll: 0,
        },
        {
          total: 0,
          selected: 0,
          checkAll: 0,
        },
        {
          total: 0,
          selected: 0,
          checkAll: 0,
        },
      ],
      // 当前数据源
      options: {},
      // 窗口显示
      boxVisible: false,
      // 已选数据
      list: {},
      // 不可选数据
      disable: {},
    };
  },
  methods: {
    // 通过id列表 获取对象列表
    idsToObjs(ids_) {
      let _options = {
        ...this.options,
      };
      let _objs = [];
      if (ids_.length > 0) {
        _objs.push(_options[ids_[0]]);
      }
      if (ids_.length > 1) {
        _objs.push(_options[ids_[0]].list[ids_[1]]);
      }
      if (ids_.length > 2) {
        _objs.push(_options[ids_[0]].list[ids_[1]].list[ids_[2]]);
      }
      if (ids_.length > 3) {
        _objs.push(
          _options[ids_[0]].list[ids_[1]].list[ids_[2]].list[ids_[3]]
        );
      }
      return _objs;
    },

    select(item_, ids_) {
      if (item_.disable) {
        return;
      }
      if (ids_.length == 1) {
        this.logic_fn1(ids_);
      }
      if (ids_.length == 2) {
        this.logic_fn2(ids_);
      }
      if (ids_.length == 3) {
        this.logic_fn3(ids_);
      }
      if (ids_.length == 4) {
        this.logic_fn4(ids_);
      }
      this.updataListData();
    },
    // ————————————————————————————————————————————————————————————————————————————————————————————
    // 判断方法
    logic_fn1(ids_) {
      if (this.logic_is1(ids_)) {
        this.logic_del1(ids_);
      } else {
        this.logic_add1(ids_);
      }
    },
    // 判断是否存在
    logic_is1(ids_) {
      // 判断是否存在
      let _item = this.list[ids_[0]];
      // 如果存在
      if (_item) {
        return _item;
      }
      // 如果不存在
      else {
        return false;
      }
    },
    // 添加
    logic_add1(ids_, checkAll_) {
      let _objs = this.idsToObjs(ids_);
      let _obj = _objs[0];
      if (checkAll_ == undefined) {
        checkAll_ = true;
      }
      this.$set(this.list, ids_[0], {
        checkAll: checkAll_,
        code: _obj.code,
        name: _obj.name,
        list: {},
      });
    },
    // 删除
    logic_del1(ids_) {
      this.$delete(this.list, ids_[0]);
    },
    // 全选
    logic_addAll1(ids_) {
      for (let i in this.options) {
        this.logic_add1([this.options[i].code]);
      }
    },

    // ————————————————————————————————————————————————————————————————————————————————————————————
    // 判断方法
    logic_fn2(ids_) {
      // 判断一级是否存在
      let _is1 = this.logic_is1(ids_);
      // 一级是否已选
      if (_is1) {
        // 一级全选的
        if (_is1.checkAll) {
          // 设置一级为不全选状态
          this.logic_add1(ids_, false);
          // 全选二级
          this.logic_addAll2(ids_);
          // 取消当前选中的二级值
          this.logic_del2(ids_);
        }
        // 一级不全选的
        else {
          // 如果存在则删除当前选中的二级值
          if (this.logic_is2(ids_)) {
            this.logic_del2(ids_);
          }
          // 不存在则添加当前选中的二级值
          else {
            this.logic_add2(ids_);
          }
        }
      }
      // 一级未选
      else {
        // 设置一级为不全选状态
        this.logic_add1(ids_, false);
        // 当前选中的二级值
        this.logic_add2(ids_);
      }
    },
    // 判断是否存在
    logic_is2(ids_) {
      let _item = this.list[ids_[0]].list[ids_[1]];
      if (_item) {
        return _item;
      } else {
        return false;
      }
    },
    // 添加
    logic_add2(ids_, checkAll_) {
      let _objs = this.idsToObjs(ids_);
      let _obj = _objs[1];
      if (checkAll_ == undefined) {
        checkAll_ = true;
      }
      this.$set(this.list[ids_[0]].list, ids_[1], {
        checkAll: checkAll_,
        code: _obj.code,
        name: _obj.name,
        list: {},
      });
    },
    // 删除
    logic_del2(ids_) {
      this.$delete(this.list[ids_[0]].list, ids_[1]);
    },
    // 全选
    logic_addAll2(ids_) {
      for (let i in this.options[ids_[0]].list) {
        this.logic_add2([ids_[0], this.options[ids_[0]].list[i].code]);
      }
    },

    // ————————————————————————————————————————————————————————————————————————————————————————————
    // 判断方法
    logic_fn3(ids_) {
      // 判断一级是否存在
      let _is1 = this.logic_is1(ids_);
      // 一级是否已选
      if (_is1) {
        // 一级全选的
        if (_is1.checkAll) {
          // 设置一级为不全选状态
          this.logic_add1(ids_, false);
          // 全选二级
          this.logic_addAll2(ids_);
          // 取消当前选中的二级值
          this.logic_del2(ids_);

          // 设置当前选中的二级为不全选状态
          this.logic_add2(ids_, false);
          // 全选三级
          this.logic_addAll3(ids_);
          // 取消当前选中的三级值
          this.logic_del3(ids_);
        }
        // 一级不全选的
        else {
          // 判断二级是否存在
          let _is2 = this.logic_is2(ids_);
          // 二级是否已选
          if (_is2) {
            // 二级全选的
            if (_is2.checkAll) {
              // 设置一级为不全选状态
              // this.logic_add1(ids_, false)
              // 全选二级
              // this.logic_addAll2(ids_)
              // 取消当前选中的二级值
              this.logic_del2(ids_);

              // // 设置当前选中的二级为不全选状态
              this.logic_add2(ids_, false);
              // // 全选三级
              this.logic_addAll3(ids_);
              // 取消当前选中的三级值
              this.logic_del3(ids_);
            }
            // 二级不全选的
            else {
              // 如果存在则删除
              if (this.logic_is3(ids_)) {
                this.logic_del3(ids_);
              }
              // 不存在则添加
              else {
                this.logic_add3(ids_);
              }
            }
          }
          // 二级未选
          else {
            // 设置二级为不全选状态
            this.logic_add2(ids_, false);
            // 当前选中的三级值
            this.logic_add3(ids_);
          }
        }
      }
      // 一级未选
      else {
        // 设置一级为不全选状态
        this.logic_add1(ids_, false);
        // 设置二级为不全选状态
        this.logic_add2(ids_, false);
        // 当前选中的三级值
        this.logic_add3(ids_);
      }
    },
    // 判断是否存在
    logic_is3(ids_) {
      let _item = this.list[ids_[0]].list[ids_[1]].list[ids_[2]];
      if (_item) {
        return _item;
      } else {
        return false;
      }
    },
    // 添加
    logic_add3(ids_, checkAll_) {
      let _objs = this.idsToObjs(ids_);
      let _obj = _objs[2];
      if (checkAll_ == undefined) {
        checkAll_ = true;
      }
      this.$set(this.list[ids_[0]].list[ids_[1]].list, ids_[2], {
        checkAll: checkAll_,
        code: _obj.code,
        name: _obj.name,
        list: {},
      });
    },
    // 删除
    logic_del3(ids_) {
      this.$delete(this.list[ids_[0]].list[ids_[1]].list, ids_[2]);
    },
    // 全选
    logic_addAll3(ids_) {
      for (let i in this.options[ids_[0]].list[ids_[1]].list) {
        this.logic_add3([
          ids_[0],
          ids_[1],
          this.options[ids_[0]].list[ids_[1]].list[i].code,
        ]);
      }
    },

    // ————————————————————————————————————————————————————————————————————————————————————————————
    // 判断方法
    logic_fn4(ids_) {
      // 判断一级是否存在
      let _is1 = this.logic_is1(ids_);
      // 一级是否已选
      if (_is1) {
        // 一级全选的
        if (_is1.checkAll) {
          // 设置一级为不全选状态
          this.logic_add1(ids_, false);
          // 全选二级
          this.logic_addAll2(ids_);
          // 取消当前选中的二级值
          this.logic_del2(ids_);

          // 设置当前选中的二级为不全选状态
          this.logic_add2(ids_, false);
          // 全选三级
          this.logic_addAll3(ids_);
          // 取消当前选中的三级值
          this.logic_del3(ids_);

          // 设置当前选中的三级为不全选状态
          this.logic_add3(ids_, false);
          // 全选四级
          this.logic_addAll4(ids_);
          // 取消当前选中的四级值
          this.logic_del4(ids_);
        }
        // 一级不全选的
        else {
          // 判断二级是否存在
          let _is2 = this.logic_is2(ids_);
          // 二级是否已选
          if (_is2) {
            // 二级全选的
            if (_is2.checkAll) {
              // // 设置一级为不全选状态
              // this.logic_add1(ids_, false)
              // // 全选二级
              // this.logic_addAll2(ids_)
              // 取消当前选中的二级值
              this.logic_del2(ids_);

              // 设置当前选中的二级为不全选状态
              this.logic_add2(ids_, false);
              // 全选三级
              this.logic_addAll3(ids_);
              // 取消当前选中的三级值
              this.logic_del3(ids_);

              // 设置当前选中的三级为不全选状态
              this.logic_add3(ids_, false);
              // 全选四级
              this.logic_addAll4(ids_);
              // 取消当前选中的四级值
              this.logic_del4(ids_);
            }
            // 二级不全选的
            else {
              // 判断三级是否存在
              let _is3 = this.logic_is3(ids_);
              // 三级是否已选
              if (_is3) {
                // 三级全选的
                if (_is3.checkAll) {
                  // // 设置一级为不全选状态
                  // this.logic_add1(ids_, false)
                  // // 全选二级
                  // this.logic_addAll2(ids_)
                  // // 取消当前选中的二级值
                  // this.logic_del2(ids_)

                  // // 设置当前选中的二级为不全选状态
                  // this.logic_add2(ids_, false)
                  // // 全选三级
                  // this.logic_addAll3(ids_)
                  // 取消当前选中的三级值
                  this.logic_del3(ids_);

                  // 设置当前选中的三级为不全选状态
                  this.logic_add3(ids_, false);
                  // 全选四级
                  this.logic_addAll4(ids_);
                  // 取消当前选中的四级值
                  this.logic_del4(ids_);
                }
                // 三级不全选的
                else {
                  // console.error(this.logic_is4(ids_));
                  // 如果存在则删除
                  if (this.logic_is4(ids_)) {
                    this.logic_del4(ids_);
                  }
                  // 不存在则添加
                  else {
                    this.logic_add4(ids_);
                  }
                }
              }
              // 三级未选
              else {
                // 设置三级为不全选状态
                this.logic_add3(ids_, false);
                // 当前选中的四级值
                this.logic_add4(ids_);
              }
            }
          }
          // 二级未选
          else {
            // 设置二级为不全选状态
            this.logic_add2(ids_, false);
            // 设置三级为不全选状态
            this.logic_add3(ids_, false);
            // 当前选中的四级值
            this.logic_add4(ids_);
          }
        }
      }
      // 一级未选
      else {
        // 设置一级为不全选状态
        this.logic_add1(ids_, false);
        // 设置二级为不全选状态
        this.logic_add2(ids_, false);
        // 设置三级为不全选状态
        this.logic_add3(ids_, false);
        // 当前选中的四级级值
        this.logic_add4(ids_);
      }
    },
    // 判断是否存在
    logic_is4(ids_) {
      let _item = this.list[ids_[0]].list[ids_[1]].list[ids_[2]].list[
        ids_[3]
      ];
      if (_item) {
        return _item;
      } else {
        return false;
      }
    },
    // 添加
    logic_add4(ids_, checkAll_) {
      let _objs = this.idsToObjs(ids_);
      let _obj = _objs[3];
      if (checkAll_ == undefined) {
        checkAll_ = true;
      }
      this.$set(
        this.list[ids_[0]].list[ids_[1]].list[ids_[2]].list,
        ids_[3],
        {
          checkAll: checkAll_,
          code: _obj.code,
          name: _obj.name,
          list: {},
        }
      );
    },
    // 删除
    logic_del4(ids_) {
      this.$delete(
        this.list[ids_[0]].list[ids_[1]].list[ids_[2]].list,
        ids_[3]
      );
    },
    // 全选
    logic_addAll4(ids_) {
      for (let i in this.options[ids_[0]].list[ids_[1]].list[ids_[2]]
        .list) {
        this.logic_add4([
          ids_[0],
          ids_[1],
          ids_[2],
          this.options[ids_[0]].list[ids_[1]].list[ids_[2]].list[i]
            .code,
        ]);
      }
    },

    // 更新数据列表
    updataListData() {
      // console.error("updataListData", {
      //     ...this.list
      // })
      let _length1 = 0;
      let _length2 = 0;
      let _length3 = 0;
      let _length4 = 0;

      let _lengthcheckAll1 = 0;
      let _lengthcheckAll2 = 0;
      let _lengthcheckAll3 = 0;
      let _lengthcheckAll4 = 0;

      let _options = this.options;

      let _selectId = this.selectId;

      for (let i in _options) {
        let _item = _options[i];
        _item.select = 0;
        _item.checkAll = false;
        // 查找是否有已选记录
        let _listItem = this.list[_item.code];
        if (_listItem) {
          // 计算全选数量
          if (_listItem.checkAll) {
            _lengthcheckAll1 += 1;
          }
          _length1 += 1;
          let _length = Object.getOwnPropertyNames({
            ..._listItem.list,
          }).length;
          _item.select = _length;
          _item.checkAll = _listItem.checkAll;
        }
      }

      if (_selectId.length > 0) {
        for (let i in _options[_selectId[0]].list) {
          let _item = _options[_selectId[0]].list[i];
          _item.select = 0;
          _item.checkAll = false;

          let _listItem0 = this.list[_selectId[0]];
          // 如果不存在
          if (!_listItem0) {
            continue;
          }
          // 如果是全选
          if (_listItem0.checkAll) {
            _item.select = 0;
            _item.checkAll = true;
            // 计算全选数量
            _lengthcheckAll2 += 1;
            continue;
          }

          // 查找是否有已选记录
          let _listItem = _listItem0.list[_item.code];
          if (_listItem) {
            // 计算全选数量
            if (_listItem.checkAll) {
              _lengthcheckAll2 += 1;
            }
            _length2 += 1;
            let _length = Object.getOwnPropertyNames({
              ..._listItem.list,
            }).length;
            _item.select = _length;
            _item.checkAll = _listItem.checkAll;
          }
        }
      }

      if (_selectId.length > 1) {
        for (let i in _options[_selectId[0]].list[_selectId[1]].list) {
          let _item =
            _options[_selectId[0]].list[_selectId[1]].list[i];
          _item.select = 0;
          _item.checkAll = false;

          let _listItem1 = this.list[_selectId[0]];
          // 如果不存在
          if (!_listItem1) {
            continue;
          }
          // 如果是全选
          if (_listItem1.checkAll) {
            _item.select = 0;
            _item.checkAll = true;
            // 计算全选数量
            _lengthcheckAll3 += 1;
            continue;
          }

          let _listItem0 = this.list[_selectId[0]].list[_selectId[1]];
          // 如果不存在
          if (!_listItem0) {
            continue;
          }
          // 如果是全选
          if (_listItem0.checkAll) {
            _item.select = 0;
            _item.checkAll = true;
            // 计算全选数量
            _lengthcheckAll3 += 1;
            continue;
          }

          // 查找是否有已选记录
          let _listItem = _listItem0.list[_item.code];
          if (_listItem) {
            // 计算全选数量
            if (_listItem.checkAll) {
              _lengthcheckAll3 += 1;
            }
            _length3 += 1;
            let _length = Object.getOwnPropertyNames({
              ..._listItem.list,
            }).length;
            _item.select = _length;
            _item.checkAll = _listItem.checkAll;
          }
        }
      }

      if (_selectId.length > 2) {
        for (let i in _options[_selectId[0]].list[_selectId[1]].list[
          _selectId[2]
        ].list) {
          let _item =
            _options[_selectId[0]].list[_selectId[1]].list[
              _selectId[2]
            ].list[i];
          _item.select = 0;
          _item.checkAll = false;

          let _listItem2 = this.list[_selectId[0]];
          // 如果不存在
          if (!_listItem2) {
            continue;
          }
          // 如果是全选
          if (_listItem2.checkAll) {
            _item.select = 0;
            _item.checkAll = true;
            // 计算全选数量
            _lengthcheckAll4 += 1;
            continue;
          }

          let _listItem1 = this.list[_selectId[0]].list[_selectId[1]];
          // 如果不存在
          if (!_listItem1) {
            continue;
          }
          // 如果是全选
          if (_listItem1.checkAll) {
            _item.select = 0;
            _item.checkAll = true;
            // 计算全选数量
            _lengthcheckAll4 += 1;
            continue;
          }

          let _listItem0 = this.list[_selectId[0]].list[_selectId[1]]
            .list[_selectId[2]];
          // 如果不存在
          if (!_listItem0) {
            continue;
          }
          // 如果是全选
          if (_listItem0.checkAll) {
            _item.select = 0;
            _item.checkAll = true;
            // 计算全选数量
            _lengthcheckAll4 += 1;
            continue;
          }

          // 查找是否有已选记录
          let _listItem = _listItem0.list[_item.code];
          if (_listItem) {
            // 计算全选数量
            if (_listItem.checkAll) {
              _lengthcheckAll4 += 1;
            }
            _length4 += 1;
            _item.select = 0;
            _item.checkAll = true;
          }
        }
      }
      // 更新已选的数量
      this.optionsQty[0].selected = _length1;
      this.optionsQty[1].selected = _length2;
      this.optionsQty[2].selected = _length3;
      this.optionsQty[3].selected = _length4;
      // 更新券选的数量
      this.optionsQty[0].checkAll = _lengthcheckAll1;
      this.optionsQty[1].checkAll = _lengthcheckAll2;
      this.optionsQty[2].checkAll = _lengthcheckAll3;
      this.optionsQty[3].checkAll = _lengthcheckAll4;
      this.toMerge();
    },
    // 当已选数量 等于 数据数量则向上合并 设置父类为全选状态
    toMerge() {
      // 二级进位合并到一级
      if (
        this.optionsQty[1].checkAll > 0 &&
        this.optionsQty[1].selected > 0 &&
        this.optionsQty[1].total == this.optionsQty[1].checkAll
      ) {
        this.logic_add1([this.selectId[0]]);
        this.updataListData();
      }

      // 三级进位合并到二级
      if (
        this.optionsQty[2].checkAll > 0 &&
        this.optionsQty[2].selected > 0 &&
        this.optionsQty[2].total == this.optionsQty[2].checkAll
      ) {
        this.logic_add2([this.selectId[0], this.selectId[1]]);
        this.updataListData();
      }

      // 四级级进位合并到三级
      if (
        this.optionsQty[3].checkAll > 0 &&
        this.optionsQty[3].selected > 0 &&
        this.optionsQty[3].total == this.optionsQty[3].checkAll
      ) {
        this.logic_add3([
          this.selectId[0],
          this.selectId[1],
          this.selectId[2],
        ]);
        this.updataListData();
      }

      // 如果一级有已选的
      if (!this.list[this.selectId[0]]) {
        return;
      }
      // 判断一级已选内是否有数据，没有清除掉
      if (
        this.optionsQty[1].checkAll == 0 &&
        this.optionsQty[1].selected == 0
      ) {
        this.logic_del1([this.selectId[0]]);
        this.updataListData();
        return;
      }
      // 如果二级有已选的
      if (!this.list[this.selectId[0]].list) {
        return;
      }
      if (!this.list[this.selectId[0]].list[this.selectId[1]]) {
        return;
      }
      // 判断二级已选内是否有数据，没有清除掉
      if (
        this.optionsQty[2].checkAll == 0 &&
        this.optionsQty[2].selected == 0
      ) {
        this.logic_del2([this.selectId[0], this.selectId[1]]);
        this.updataListData();
        return;
      }
      // 如果三级有已选的
      if (!this.list[this.selectId[0]].list[this.selectId[1]].list) {
        return;
      }
      if (
        !this.list[this.selectId[0]].list[this.selectId[1]].list[
        this.selectId[2]
        ]
      ) {
        return;
      }
      // 判断三级已选内是否有数据，没有清除掉
      if (
        this.optionsQty[3].checkAll == 0 &&
        this.optionsQty[3].selected == 0
      ) {
        this.logic_del3([
          this.selectId[0],
          this.selectId[1],
          this.selectId[2],
        ]);
        this.updataListData();
        return;
      }
    },
    // 分层地区 首次参数 parentId = 0
    // 省 province 市 city  区 area 街道 street
    async getCategoryOptions(ids_) {
      console.error('IDS', ids_);

      if ((ids_.length > 0) && (ids_.length >= this.level)) {
        return
      }

      let _id = 0;
      this.selectId = ids_;
      if (ids_.length > 0) {
        _id = ids_[ids_.length - 1];



      }

      let _data = await this.$vFN.Http.post(
        {
          url: this.apiConfig.list.url,
          domain: this.apiConfig.list.domain,
          data: {
            parentId: _id,
          },
        },
        this.appWindow
      );
      if (_data._ok) {
        let _options = {};
        _data.data.forEach((item) => {
          _options[item.id] = {
            checkAll: false,
            select: 0,
            code: item.id,
            name: item.areaName,
            list: {},
          };
        });

        _options = this.beDisable(_options);
        let _length = Object.getOwnPropertyNames({
          ..._options,
        }).length;

        if (ids_.length == 0) {
          this.$set(this, "options", _options);
          this.optionsQty[0].total = _length;
          this.optionsQty[1].total = 0;
          this.optionsQty[2].total = 0;
          this.optionsQty[3].total = 0;
        } else if (ids_.length == 1) {
          this.$set(this.options[ids_[0]], "list", _options);
          this.optionsQty[1].total = _length;
          this.optionsQty[2].total = 0;
          this.optionsQty[3].total = 0;
        } else if (ids_.length == 2) {
          this.$set(
            this.options[ids_[0]].list[ids_[1]],
            "list",
            _options
          );
          this.optionsQty[2].total = _length;
          this.optionsQty[3].total = 0;
        } else if (ids_.length == 3) {
          this.$set(
            this.options[ids_[0]].list[ids_[1]].list[ids_[2]],
            "list",
            _options
          );
          this.optionsQty[3].total = _length;
        }

        this.updataListData();
      }
    },
    // 全部禁选
    allDisable(_options) {
      for (let i in _options) {
        _options[i].disable = true;
      }
      return _options;
    },

    // 子项禁选
    itemDisable(_obj, _options) {
      for (let i in _obj) {
        _options[i].disable = true;
      }
      return _options;
    },

    // 是否不可选
    beDisable(_options) {
      let ids_ = this.selectId;
      if (ids_.length == 0) {
        this.itemDisable(this.disable, _options);
      }

      if (ids_.length == 1) {
        let _is = this.disable[ids_[0]];
        if (_is) {
          if (_is.checkAll) {
            _options = this.allDisable(_options);
          } else {
            this.itemDisable(_is.list, _options);
          }
        }
      }

      if (ids_.length == 2) {
        let _is1 = this.disable[ids_[0]];
        if (_is1) {
          if (_is1.checkAll) {
            _options = this.allDisable(_options);
          } else {
            let _is = _is1.list[ids_[1]];
            if (_is) {
              if (_is.checkAll) {
                _options = this.allDisable(_options);
              } else {
                this.itemDisable(_is.list, _options);
              }
            }
          }
        }
      }

      if (ids_.length == 3) {
        let _is2 = this.disable[ids_[0]];
        if (_is2) {
          if (_is2.checkAll) {
            _options = this.allDisable(_options);
          } else {
            let _is1 = _is2.list[ids_[1]];
            if (_is1) {
              if (_is1.checkAll) {
                _options = this.allDisable(_options);
              } else {
                let _is = _is1.list[ids_[2]];
                if (_is) {
                  if (_is.checkAll) {
                    _options = this.allDisable(_options);
                  } else {
                    this.itemDisable(_is.list, _options);
                  }
                }
              }
            }
          }
        }
      }

      return _options;
    },
    // 取消全选
    clearSelectAll() {
      this.list = {};
    },

    submit() {
      let _list = {
        ...this.list,
      };
      if (JSON.stringify(_list) != {}) {
        this.editBoxClose();
        this.onSuccess({
          checkAll:
            this.optionsQty[0].checkAll == this.optionsQty[0].total,
          list: _list,
        });
      }
    },
    // 成功回调
    onSuccess() { },
    // 取消回调
    onCancel() { },
    // 失败回调
    onError() { },
    // 关闭窗口
    editBoxClose() {
      this.boxVisible = false;
    },
    // 取消
    editBoxCancel() {
      this.editBoxClose();
    },
  },
  watch: {},
  async mounted() {
    await this.getCategoryOptions([]);
    this.boxVisible = true;
    // await this.getCategoryOptions([150000]);
    // await this.getCategoryOptions([150000, 150300]);
    // await this.getCategoryOptions([150000, 150300, 150303]);
  },
  beforeCreate() { },
};
</script>